'''
依赖的用例不止一个，所以是以列表形势进行存放
按照列表的下标依次找到依赖用例所在位置，获取到请求的值，拼接成请求并发送
获取到响应结果，按照需要依赖用例的依赖键找到响应里的对应字段，并存到结果列表
获取所有的结果后返回结果列表
'''

import sys
sys.path.append('.')
from data.business_data_copy import test_data
from base.runmethod import run_main
from config import token
from config import cookie
from config import base_url


def get_depend(data):
    # 需要依赖用例的依赖用例个数的下标计数器
    case_counter = 0
    # 结果列表
    result_list = []
    # 循环依赖用例列表中的用例，并依次输出它们的结果
    for case in data: 
        # 用例名称列表
        t_list=[]
        # 需要依赖用例的用例所在用例列表下标计数器
        remark_num = 0
        # 循环用例列表，拿到所有用例的remark，写入t_list列表
        for i in range(len(test_data)):
            t = test_data[i]['remark']
            t_list.append(t)
            # 找到需要依赖的用例的所在位置
            if data[case_counter] != t:
                remark_num += 1
        # 依赖用例的下标计数器
        counter = 0
        # 找到依赖用例的位置，并取到依赖用例的数据，进行请求，获取到响应结果，根据需要依赖用例的用例(当前用例)的依赖key取到对应字段的值，将值存到结果列表
        for check_data in t_list:
            # 是依赖用例的位置，拼接请求并发送，获取结果存入结果列表
            if case == check_data:             
                metho = test_data[counter]['method']
                url = base_url + test_data[counter]['path']
                body = test_data[counter]['data']
                body['accesstoken'] = token
                r = run_main(metho,url,body,cookie).json()
                r_key = r[test_data[remark_num]['depend_key'][case_counter]]
                result_list.append(r_key)
                case_counter += 1
            # 不是依赖用例的位置，下标+1，继续在列表中寻找
            else:
                counter += 1
                continue
    return result_list

if __name__ == "__main__":
    data = test_data[-1]['depend_case']
    print(data)
    print(get_depend(data))